﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using CondominioWeb.Persistencia.NHibernate;
using CondominioWeb.Dominio;
using CondominioWeb.Negocio;


namespace CondominioWeb.Pruebas
{
    public class TestPagoMorosidadService
    {
        private IApplicationContext Spring;

        [TestFixtureSetUp]
        public void InicializarPruebas()
        {
            //"assembly://assembly/namespace/capaPersistencia.xml",
            Spring = new XmlApplicationContext(
                "assembly://CondominioWeb/CondominioWeb/capaPersistencia.xml",
                "assembly://CondominioWeb/CondominioWeb/capaNegocio.xml"
                );
        }

        [Test]
        public void TestRealizarPago()
        {
            //
            PagoMorosidadService pagoMorosidadService = (PagoMorosidadService)Spring.GetObject("pagoMorosidadService");
            Assert.NotNull(pagoMorosidadService);
            Pago oPago = null;
            Assert.DoesNotThrow(delegate
            {
                oPago = pagoMorosidadService.RealizarPagoCuota(3, 1, DateTime.Now, "", "", "", 1, 100, "", "Activo");
            });
            //oPago = pagoMorosidadService.RealizarPagoCuota(2, 1, DateTime.Now, "", "", "", 1, 100, "", "Activo");
            Assert.NotNull(oPago);
            Assert.Greater(oPago.PagoCodigo, 0);

        }
        [Test]
        public void TestListarResidentesMorosos()
        {
            ICollection<Mantenimiento> oMantenimientos = null;
            PagoMorosidadService pagoMorosidadService = (PagoMorosidadService)Spring.GetObject("pagoMorosidadService");
            Assert.DoesNotThrow(delegate
            {
                oMantenimientos = pagoMorosidadService.ListarResidentesMorosos(1);
            });
          
            Assert.IsNotNull(oMantenimientos);
            Assert.Greater(oMantenimientos.Count(), 0);
        }

        [Test]
        public void TestListarCuotasPendientesPago()
        {
            ICollection<Mantenimiento> oMantenimientos = null;
            PagoMorosidadService pagoMorosidadService = (PagoMorosidadService)Spring.GetObject("pagoMorosidadService");
            Assert.DoesNotThrow(delegate
            {
                oMantenimientos = pagoMorosidadService.ListarCuotasPendientesPago(1);
            });

            Assert.IsNotNull(oMantenimientos);
            Assert.Greater(oMantenimientos.Count(), 0);
        }

    }
}